"""
数据库连接管理模块
负责创建数据库引擎和提供数据库会话
"""
from sqlmodel import create_engine, Session
from app.config import settings


# 创建数据库引擎
# echo=True 表示在控制台输出SQL语句，便于调试
engine = create_engine(settings.DATABASE_URL, echo=True)


def get_db():
    """
    获取数据库会话的依赖函数
    用于FastAPI的依赖注入系统，为每个请求创建一个新的数据库会话
    会话在请求处理完成后自动关闭，确保资源正确释放
    
    Yields:
        Session: SQLAlchemy数据库会话对象
    """
    with Session(engine) as session:
        yield session